﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WorkFlowBLL;

namespace QLCF.Forms
{
    public partial class frmUnitDetail : Form
    {
        public int m_unitID = -1;
        public Boolean m_isAddNew = false;
        public frmUnit m_parrent;
        public frmUnitDetail(frmUnit Parrent)
        {
            InitializeComponent();
            this.m_parrent = Parrent;
            this.m_unitID = Parrent.m_unitID;
            this.m_isAddNew = Parrent.isAddNew;
        }        

        private void frmUnitDetail_Load(object sender, EventArgs e)
        {
            bindcbxBaseUnit();
            if (!m_isAddNew)
            {
                CtrBase ctrBase = new CtrBase();
                var objUnit = ctrBase.UnitGetInfo(this.m_unitID);
                if (objUnit != null)
                {
                    txtNameUnit.Text = objUnit.Name;
                    txtMultiphy.Text = objUnit.MultiPhy.HasValue?objUnit.MultiPhy.Value.ToString():"";
                    cbxUnitBase.SelectedValue = objUnit.BaseUnitID ?? 0;
                }
            }
        }
        private void bindcbxBaseUnit()
        {
            CtrBase ctrb = new CtrBase();
            var items = ctrb.GetUnitByBaseUnitID(0);
            DataContext.uspUnitGetByBaseUnitIDResult none = new DataContext.uspUnitGetByBaseUnitIDResult();
            none.Name = "-----";
            none.UnitID = 0;
            items.Insert(0, none);
            cbxUnitBase.ValueMember = "UnitID";
            cbxUnitBase.DisplayMember = "Name";
            cbxUnitBase.DataSource = items;
        }
        private void btnEdit_Click(object sender, EventArgs e)
        {
            if (this.txtNameUnit.Text == "")
            {
                MessageBox.Show("Bạn chưa nhập đơn vị tính", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                this.txtNameUnit.Focus();
                return;
            }
            int? mutilphy = 0;
            try
            {
                mutilphy = Convert.ToInt32(txtMultiphy.Text);
            }
            catch
            {
            }
            int? baseUnitID = 0;
            try
            {
                baseUnitID=Convert.ToInt32(cbxUnitBase.SelectedValue);
            }
            catch { }
            if ((mutilphy > 0) && !(baseUnitID > 0))
            {
                MessageBox.Show("Hãy chọn đơn vị cơ bản");
                cbxUnitBase.Focus();
                return;
            }
            if (!(mutilphy > 0) && (baseUnitID > 0))
            {
                MessageBox.Show("Hãy nhập bội số");
                txtMultiphy.Focus();
                return;
            }

            CtrBase ctrBase = new CtrBase();
            if (this.m_isAddNew)
            {
                
                var objBase = ctrBase.UnitInsert(txtNameUnit.Text.Trim().Replace(",", "''"), mutilphy>0?mutilphy:null,baseUnitID);
                if (objBase > 0)
                {
                    CtrAdmin ctra = new CtrAdmin();
                    ctra.LogInsert(Program.UserEntity.UserID, Program.UserEntity.UserName, 1, "Thêm mới đơn vị \"" + txtNameUnit.Text.Trim().Replace(",", "''") + "\" có mã \"" + objBase + "\"", "Quản lý đơn vị");
                    m_parrent.BindData();
                    this.Close();
                }
                else
                {
                    if (objBase == -1)
                    {
                        MessageBox.Show("Đã tồn tại đơn vị có tên này");
                        txtNameUnit.Focus();
                    }                    
                }
            }
            else
            {
                var objBase = ctrBase.UnitUpdate(this.m_unitID, txtNameUnit.Text.Trim().Replace(",", "''"), mutilphy > 0 ? mutilphy : null, baseUnitID);
                if (objBase > 0)
                {
                    CtrAdmin ctra = new CtrAdmin();
                    ctra.LogInsert(Program.UserEntity.UserID, Program.UserEntity.UserName, 2, "Cập nhật tên đơn vị \"" + txtNameUnit.Text.Trim().Replace(",", "''") + "\" có mã \"" + this.m_unitID + "\"", "Quản lý đơn vị");
                    m_parrent.BindData();
                    this.Close();
                }
                else
                {
                    if (objBase == -1)
                    {
                        MessageBox.Show("Đã tồn tại đơn vị có tên này");
                        txtNameUnit.Focus();
                    }
                }
            }
        }

        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void txtMultiphy_KeyPress(object sender, KeyPressEventArgs e)
        {
            int isNumber = 0;
            e.Handled = !int.TryParse(e.KeyChar.ToString(), out isNumber);
        }

    
    }
}
